올바르지 않은 코드입니다.

매운 순록 23-07-07
수정 삭제
정보처리기사 실기 2020년 2회
19. 다음 자바(Java) 프로그램을 실행한 출력 결과를 쓰시오.
class A {
  int a;
  public A(int n) {
      a = n;
  }

  public void print() {
    System.out.println("a=" +  a);
  }
}

class B extends A {
  public B(int n) {
    super(n);
    super.print();
  }
}

public class Exam {
  public static void main(String[] args) {
    B obj = new B(10);
  }
}

class A {

  int a;

  public A(int n) {

      a = n;

  }

  public void print() {
    System.out.println("a=" +  a);
  }

class B extends A {
  public B(int n) {
    super(n);
    super.print();
  }
}

public class Exam {
  public static void main(String[] args) {

    B obj = new B(10);
  }
}

첫 번째로 올바르지 않은 메소드 구문이라 컴파일러 레벨에서 오류가 나고,
두 번째로 최소한의 수정만으로 원하는 결과가 출력된다고 했을 때, 콘솔에 출력할 수 있도록 System.out.println 메소드를 호출해야 합니다.
세 번째로는 '상속을 통한 오버라이딩을 이해하고 있는가'를 판단하는 것이 출제의도이기 때문에 오버라이딩을 구현하도록 
자식 클래스인 B와 부모 클래스인 A의 메소드 명을 통일하여야 합니다.

따라서 public void println("a="+a); 를

public void print() {
    System.out.println("a=" +  a);
}
로  변경해야 합니다.

댓글
1 0

모든 문제들의 저작권은 원저작권자에게 있습니다. 본 사이트는 웹상에 공개되어 있는 문제만 모아서 보여드립니다.
저작권 안내   데이터 보호 안내   제휴 문의

copyright 2025 뉴비티::새로운 CBT 시스템 - newbt.kr